package fr.univ.projet;


public class Tolo extends Jeu
{    
    // Borne inférieure de la grille
    private static int NUM_MINI = 1;
    // Borne supérieure de la grille
    private static int NUM_MAX = 20;
    // Nombre de numéro à tirer
    private static int NB_NUM = 4;
    
    //
    private String typeJeu = "Tolo";
    
    public Tolo(int pNum)
    {
        super(pNum);
        
        // initialisation du type de jeu
        this.setTypeJeu(typeJeu);
        
        // Initialisation des règles pour les numéros simples
        this.setNbreNumero(NB_NUM);
        this.setNumeroMax(NUM_MAX);
        this.setNumeroMin(NUM_MINI);
        
        // Le tolo n'a pas de numéro chance donc on met les regle chance à 0
        this.setNbreNumeroChance(0);
        this.setNumeroChanceMax(0);
        this.setNumeroChanceMin(0);
    }

    @Override
    public float calculGainsGrille(Grille pGrille)
    {
        int nbNumTrouve = 0;
        float gains = 0.0f;
        
        for ( Numero num : pGrille.getNumerosChoisis())
        {
            if ( getNumerosGagnants().contains(num))
            {
                nbNumTrouve++;
            }
        }
        
        if ( nbNumTrouve == 3 )
            gains = pGrille.getMise() * 5;
        else if ( nbNumTrouve == 4)
            gains = pGrille.getMise() * 50;
        
        return gains;
    }

    @Override
    public void tirage()
    {
        System.out.println("Tirage effectué");
        
        for( int i = 1; i <= getNbreNumero() ; i++)
        {
            int numero = (int)(Math.random() * (getNumeroMax()+1-getNumeroMin())) + getNumeroMin();
            while ( estDejaTirer(numero) )
                numero = (int)(Math.random() * (getNumeroMax()+1-getNumeroMin())) + getNumeroMin();
            
            Numero num = new Numero(numero);
            
            getNumerosGagnants().add(num);
            System.out.println("Numéro tiré : " + numero);
        }
        
        getMapResult().put(CODE_MAP_NUMS_GAGNANTS, getNumerosGagnants());
        
    }    
}
